/**
 * @file "ennemi.h"
 * @author Margot FARGIER, FAURE Adrien
*/

#ifndef ENNEMI_H
#define ENNEMI_H

#include "personnage.h"


/**
 * @brief structure Ennemi définie à partir d'un personnage aux propriétés particulières
 * @var Personnage
 * @var float xmin
 * @var float xmax
 * @var float intervalle
*/
typedef struct
{
	Personnage ennemi;
	float xmin;
	float xmax; /* Bornes entre lesquelles l'ennemi va se déplacer */
	float intervalle;
}Ennemi;

/**
 * @brief Mutateur : Initialisation de la vitesse à 0, de la position à x et y passés en 2éme et 3ème paramètres, bornes initialisées à x-intervalle et x+intervalle
 * @param[in-out] Ennemi
 * @param[in] float
 * @param[in] float
 * @return none
*/
void ennemiInit(Ennemi *pEnnemi, float x, float y);


/**
 * @brief Mutateur qui met le x de la vitesse à -x (en abscisse)
 * @param[in-out] Ennemi
 * @return none
*/
void ennemiChangeDeplacement(Ennemi * pEnnemi);

/**
 * @brief Accesseur qui permet d'obtenir la borne inferieure des déplacements autorisés
 * @param[in] Ennemi
 * @return float
*/
float ennemiGetXmin(const Ennemi *);


/**
 * @brief Accesseur qui permet d'obtenir la borne supérieure des déplacements autorisés
 * @param[in] Ennemi
 * @return float
*/
float ennemiGetXmax(const Ennemi *);

/**
 * @brief Accesseur qui permet d'obtenir l'intervalle contenu dans la structure Ennemi passée en paramètre
 * @param[in] Ennemi
 * @return float
*/
float ennemiGetIntervalle(const Ennemi *);

#endif
